﻿using System;
using System.IO;

namespace SearchPhotos
{
    /// <summary>
    /// 利用递归查找c盘上的所有jpg文件
    /// </summary>
    class Program
    {
        const string root = @"c:\";//定义根目录
        const string fileType = ".jpg";// 确定所要查找的文件类型
        static int count = 0;// 记录所查找到的jpg文件个数
        static void Main(string[] args)
        {
            DirectoryInfo path = new DirectoryInfo(root);
            Search(path);
            Console.WriteLine($"{root}下{fileType}类型的文件总数为：{count}");
        }

        /// <summary>
        /// 定义查找文件的方法 递归
        /// </summary>
        /// <param name="path"></param>
        static void Search(DirectoryInfo path)
        {
            DirectoryInfo[] subDirectory = path.GetDirectories();//定义子目录

            foreach (var item in subDirectory)//查找目录中是否有错误并进行处理
            {
                try
                {
                    Search(item);
                }
                catch (Exception)
                {
                    return;
                }
            }
            foreach (var file in path.GetFiles())//查找目录中的符合条件的文件并计数
            {
                if(file.Extension.ToLower()==fileType)
                {
                    Console.WriteLine(file.FullName);
                    count++;
                }
            }
        }
    }
}
